/**
 * @description 该文件专门为 Count 组件生成 action 对象
 * @author WangGuojian
 * @dateTime 2022/4/30
 */
import { INCREMENT, DECREMENT } from "../constant";

/**
 * 同步 action，就是指 action 的值为 Object 类型的一般对象
 * @param {Number} data 数据
 * @returns Object
 */
export const createIncrementAction = (data) => ({ type: INCREMENT, data });

export const createDecrementAction = (data) => ({ type: DECREMENT, data });

/**
 * 异步 action，就是指 action 的值为函数
 * 异步 action 中一般都会调用同步 action
 * 异步 action 不是必须要用的
 * @param {Number} data 数据
 * @param {Number} time 时间
 * @returns function
 */
export const createIncrementAsyncAction = (data, time) => {
    return (dispatch) => {
        setTimeout(() => {
            dispatch(createIncrementAction(data));
        }, time);
    };
};
